import request from '@/config/axios'
import type { Dayjs } from 'dayjs';

/** 课程安排信息 */
export interface Schedule {
          id: number; // 主键ID
          courseName?: string; // 课程名称
          className: string; // 班级名称
          location?: string; // 教室地点
          dayOfWeek?: number; // 星期几（1-7，1表示周一，7表示周日）
          timeSlot?: number; // 时间段（1-5，对应第1-2节、第3-4节等）
          weekNumber?: number; // 周次（第几周）
          userId?: number; // 用户ID（关联system_users表）
          teacherName?: string; // 教师姓名（冗余字段，方便查询）
          remark: string; // 备注
  }

// 课程安排 API
export const ScheduleApi = {
  // 查询课程安排分页
  getSchedulePage: async (params: any) => {
    return await request.get({ url: `/ao/schedule/page`, params })
  },

  // 查询课程安排详情
  getSchedule: async (id: number) => {
    return await request.get({ url: `/ao/schedule/get?id=` + id })
  },

  // 新增课程安排
  createSchedule: async (data: Schedule) => {
    return await request.post({ url: `/ao/schedule/create`, data })
  },

  // 修改课程安排
  updateSchedule: async (data: Schedule) => {
    return await request.put({ url: `/ao/schedule/update`, data })
  },

  // 删除课程安排
  deleteSchedule: async (id: number) => {
    return await request.delete({ url: `/ao/schedule/delete?id=` + id })
  },

  /** 批量删除课程安排 */
  deleteScheduleList: async (ids: number[]) => {
    return await request.delete({ url: `/ao/schedule/delete-list?ids=${ids.join(',')}` })
  },

  // 导出课程安排 Excel
  exportSchedule: async (params) => {
    return await request.download({ url: `/ao/schedule/export-excel`, params })
  },
}